System and methods for creating a geospatial network model in a client environment

ABSTRACT

System and methods for creating a geospatial network model in a client environment are disclosed. The system residing on a client device receives Geographic Information System (GIS) data for a distribution network, which includes spatial information and non-spatial information (e.g., attributes) relating to features in the distribution network, from a remote GIS database. The system uses the spatial information in the GIS data to construct an undirected graph that is represented by a set of adjacency relationships between the features and utilizes the non-spatial information to traverse the undirected graph in order to construct a directed graph that is represented as a set of directed adjacency relationships between the features. The system stores the data structure corresponding to the directed graph in the form of an array or hashtable in the client device&#39;s cache memory for use in performing network analyses such as tracing analysis without accessing the GIS database.

CROSS-REFERENCE TO RELATED APPLICATION(S)

The present application claims priority to and benefit from U.S.Provisional Patent Application Ser. No. 62/275,076 titled “System andMethods for Creating a Geospatial Network Model in a Client Environment”filed on Jan. 5, 2016 which is expressly incorporated by referenceherein.

BACKGROUND

Utility companies provide services such as electricity, gas, water,telecommunication, cable television, etc., to customers. All of theseservices require a distribution network for the area that is beingserviced. As used herein, a distribution network comprises of pipelines,cables, and/or other equipment to facilitate distribution of a utilityto customers. For example, an electrical distribution network comprisingof cables/overhead lines and sub-stations facilitates distribution ofelectricity from a transmission/sub-transmission network to customers.Utilities such as electric distribution utilities commonly store datarepresenting distribution facilities (e.g., poles, conductors,transformers, switching and protective equipment, etc.) in a facilitiesdatabase, typically a relational database that includes geospatialattributes (i.e., a Geographic Information System or GIS). Softwareapplications (e.g., network design applications) can then be used fordesigning, editing analyzing, and/or visualizing distribution networksthat are represented in a GIS database (e.g., a geodatabase or GDB). Oneof the analysis functions provided by the software applications is“electric tracing.” The electric tracing function identifies anddisplays on a map all of the features (i.e., objects with a geometricshape) that are electrically “upstream” or “downstream” of a givenfeature selected by a user as the starting point of the trace.

The implementation of the electric tracing function is based on a modelof the distribution network. Existing models of the distribution networkare typically based on relational database management systems (RDMS).One example of such a model is the “Geometric Network” model. TheGeometric Network model comprises of a set of connected edges (lines)and junctions or vertices (points) and connectivity rules that are usedto represent and model the behavior of the network in the real world.The Geometric Network model is created server-side and stored in ageodatabase.

Implementation of network analysis functions including the tracingfunction based on the existing network models has several problems.Taking the example of the Geometric Network model which is stored in theGIS database, a proprietary API is required to query the GeometricNetwork for connectivity relationships between objects and to obtain thegeographic shape for objects. This API, however, is platform dependent,i.e., it is only available where there is a full installation of acorresponding software product (ArcGIS Desktop) which is available forWindows and Linux based operating systems. The software product cannotbe installed on mobile operating systems such Android, iOS and WindowsMobile. While web-based access to GIS data through the ArcGIS Serverproduct is available, the web API does not include any functions fordirect access to the network topology (i.e., relationships betweenobjects) contained in a Geometric Network. Without the access to thenetwork topology, any usable implementation of electric tracingfunctions is not possible.

Another problem with existing network models is high latency. Typically,once a user makes a selection on a map in an application executing onthe user device, the user has to wait for the application to make aquery to the geodatabase and receive a response back from thegeodatabase before the results can be rendered on a display of the userdevice. If the user makes another selection on the map, a new query issent to the geodatabase. This behavior can cause the application to beslow or completely unresponsive, and thereby negatively impact userexperience with the application.

In addition to the above problems, there is considerable complexity inimplementing the tracing function based on the existing network models.For example, the presence of loops and multiple circuit sources may becompounded by cases where the electrical phases A, B, and C aredifferentially present (for conductors) and/or differentially blocked(by switching equipment) in various parts of a distribution circuit. Theexisting network models offer very little support for modeling thesesituations and as such, tracing implementations based on the existingnetwork models are typically inefficient and susceptible to bugs.

The need exists for a model for a utility distribution network thatovercomes the above problems, as well as one that provides additionalbenefits. Overall, the examples herein of some existing or relatedmodels and/or systems and their associated limitations are intended tobe illustrative and not exclusive. Other limitations of existing modelsand/or systems will become apparent to those of skill in the art uponreading the following Detailed Description.

SUMMARY

Embodiments of the present disclosure include a system and method forconstructing a model for a distribution network. In accordance with someembodiments, the system receives Geographic Information System (GIS)feature data for a distribution network from a GIS database, utilizesthe GIS feature data to create a set of adjacency relationships betweenfeatures in the distribution network and performs a traversal of thedistribution network using the set of adjacency relationships andattributes of the features in each step of the traversal to generate adata structure representing a model for the distribution network. Thesystem then stores data structure representing the model for thedistribution network in a local storage.

In accordance with some embodiments, a system receives GeographicInformation System (GIS) data for a utility distribution network from aGIS database, wherein the GIS data includes objects and spatialinformation associated with the objects. The system determines adjacencyrelationships between the objects using the spatial information togenerate a first adjacency list, determines upstream or downstreamdirection and at least one associated attribute of each adjacencybetween the objects in the first adjacency list to generate a secondadjacency list and stores the second adjacency list in a form optimizedfor lookup speed on a local storage to facilitate at least one ofediting, analysis or visualization of a circuit in the utilitydistribution network. In some aspects, the form optimized for lookupspeed may be an array, a hash table, or the like.

In accordance with some embodiments, a system receives GeographicInformation System (GIS) data for a distribution network from a GISdatabase, the GIS data including spatial information relating to objectsin the distribution network, constructs an undirected graph utilizingthe spatial information in the GIS data, wherein the undirected graph isrepresented by a data structure corresponding to a set of adjacencyrelationships between the objects, constructs a directed graph bytraversing the undirected graph starting from each source vertex andtracking attributes of the objects in each step of the traversal,wherein the directed graph is represented by a data structurecorresponding to a set of directed adjacency relationships between theobjects and caches the data structure corresponding to the directedgraph in a cache memory.

In accordance with some embodiments, a system detects a user request toperform a tracing analysis on a circuit in an electric distributionnetwork, wherein the user request includes a selection of a feature onthe circuit. In response to the user request, the system accessesnetwork model data corresponding to the circuit in the electricdistribution network that is stored locally to determine features thatare upstream and downstream of the selected feature along with at leastone of source and phase attributes corresponding to each feature, thenetwork model data including topological relationships. The system thenrenders a trace of: all edges with flow direction from a vertex havingthe source attribute via the upstream features to the selected featurebased on the topological relationships; and all edges with flowdirection from the selected feature via the downstream features to theextremities of the distribution network.

In accordance with some embodiments, a system receives GeographicInformation System (GIS) data corresponding to a distribution network ora portion thereof from a GIS database, the GIS data including a set ofadjacency relationships between features in the area of interest orinformation for deriving the set of adjacency relationships, performs atraversal of the distribution network or the portion thereof using theset of adjacency relationships and attributes of the features in eachstep of the traversal to generate a data structure representing a modelfor the distribution network or the portion thereof and stores the datastructure locally on the hardware device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an example environment in which asystem and method for creating a geospatial network model (hereinafter“disclosed system” or “disclosed technology”) can operate.

FIG. 2 is a graphical diagram illustrating an example of GeographicInformation System (“GIS”) feature data for an electric distributioncircuit.

FIG. 3 is a graphical diagram illustrating a graphical representation ofthe GIS feature data from FIG. 2 .

FIG. 4 is a block diagram illustrating example components of thedisclosed system in some embodiments.

FIG. 5 is a graphical diagram illustrating an adjacency list for anundirected graph based on the GIS feature data from FIG. 2 .

FIG. 6 is a graphical diagram illustrating an adjacency list for adirected graph created from the undirected graph in FIG. 5 .

FIG. 7 provides an example code representation of an electric networkmodel.

FIG. 8 is a logic flow diagram illustrating an example method ofcreating a geospatial network model within a client environment usingraw GIS feature data from a geodatabase.

FIG. 9 is a graphical diagram illustrating a portion of an electricdistribution circuit with tracing results showing objects that areupstream and downstream from a point of selection.

FIG. 10 is a block diagram of an exemplary apparatus that can performvarious operations, and store various information generated and/or usedby such operations in some embodiments of the disclosed technology.

DETAILED DESCRIPTION

A system and methods for creating a geospatial network model(hereinafter “network model”) for a distribution network in a clientenvironment using geospatial information system (GIS) data (hereinafter“disclosed technology” or “disclosed system”) are described in thisdisclosure. In various embodiments, the distribution network (“network”)may be any utility distribution network such as an electric distributionnetwork, a gas distribution network, a water distribution network, atelecom distribution network, or the like. In some embodiments, thedisclosed technology, operating in a client environment, fetches contentin the form of GIS data for an area of interest from a GIS database(e.g., a geodatabase) and transforms the GIS data into a network model.In accordance with the disclosed technology, the network model of adistribution network is a specialized data structure that is created andstored locally on a client device in order to enable real-time or nearreal-time analyses of the distribution network.

The network model, in accordance with some embodiments of the disclosedtechnology, is a directed graph comprised of vertices and directededges. Each feature in the GIS source data can be modeled as one or morevertices in the network model. This is true for linear GIS features(e.g. electric conductors, or gas pipes) as well as for point features(e.g. transformers, switches, fuses, valves, regulators, etc.) The edgesin the network model represent the directed flow of the networkcommodity (i.e. electric power, or gas, or water, etc.) through thefacilities represented by the vertices. The edges may be endowed withattributes that provide details about the commodity flow. For example,the edges in an electric network model carry a Phases attribute toindicate which electrical phases flow through the edge from one vertextowards another, as well as a power source identifier to indicate thevertex (which may be remote) that represents the ultimate source of thepower flowing through the edge (e.g. the substation circuit breaker fora distribution feeder circuit). In some embodiments, the verticestypically carry attributes to indicate the type of equipment theyrepresent (e.g. conductor, sectionalizing device, transformer, servicepoint, branching node, etc.) and/or other properties of interest to themodeling domain. For example, electric switches carry a property thatindicates the switching state of the device (i.e. open or closed) oneach phase.

As described above, in some embodiments, the disclosed technologytransforms the features or database objects representing conductors,transformers, switches, fuse, and the like into a network model. In someembodiments, the transformation includes determining adjacencyrelationships between the GIS database objects and determining an orderfor the adjacency relationships, along with other attributes such assources of power for the distribution network (e.g., feeder systems) andelectrical phases. Thus, following the transformation process, eachobject in the network model knows not only who its neighbors are butalso which of the objects are its upstream neighbors and which of theobjects are its downstream neighbors, where the power that energizes thedistribution network is coming from and which of the energizedelectrical phases are being allowed to flow through the adjacencies.

In accordance with some embodiments of the disclosed technology, thetransformation of the GIS data comprises using the GIS data for adistribution network to construct an undirected graph (or undirectednetwork) which establishes adjacency relationships between the features.The undirected graph can be represented by an adjacency list thatincludes object pairs that are adjacent to each other. For example, ifobject V₁ is neighbors with object V₂, the adjacency list would comprisethe following pairs of objects: (V₁, V₂) and (V₂, V₁). In other words,the path may go from V₁ to V₂ or from V₂ to V₁. The transformationprocess further includes performing a series of traversals of theundirected graph starting at each circuit source vertex paying attentionto the phase attribute of the features to create a directed graph. Thedirected graph comprises a set of directed adjacencies and isrepresented by an adjacency list that includes ordered object pairs withsource and phase properties or attributes. In alternative embodiments,GIS can be the source for adjacency relationships, and as such thetransformation process can comprise transforming the undirected graphinto a directed graph as described above. In some embodiments, thedisclosed technology renumbers the objects in the directed graph so thatthe data structure corresponding to the directed graph can be stored inthe form of an array or any other suitable form optimized for lookupspeed in a memory (e.g., cache memory) on the client device. Thedisclosed technology also generates a mapping between the originalobject IDs (or GIS IDs) and the array indexes to enable adjacent objectlook ups in constant time regardless of the size of the array. In otherwords, the disclosed technique for storing the directed graph ensuresthat the adjacency look up performance is predictable and not worse onbigger networks with more features. Alternatively, in some embodiments,adjacency look ups may be based on a hash look up of GIS IDs.

With the source and phase properties on each adjacency being availablefrom the directed graph data structure which is stored locally inmemory, the tracing operation according to the disclosed technology doesnot need to perform additional GIS database queries beyond the initialdatabase queries to fetch GIS data (i.e., spatial and geometric data).By keeping the GIS database queries to a minimum, and thereafter,constructing and storing the network model locally on a client device,the disclosed technology saves on bandwidth and other network resources.

The disclosed technology further implements the tracing operation moreefficiently and thereby improves the speed at which tracing operationsare performed and results of the operations are displayed to a user. Thedisclosed technology simplifies some of the complexity behind theimplementation of the tracing operation. The disclosed technology alsore-uses as much of the pre-computed locally stored network model data aspossible for tracing operations so that the amount of new calculationsto be performed is reduced. This technique helps improve the speed oftracing operations so that a user can repeatedly select any point on amap and be able to view results of the tracing operations instantly, inreal-time, without any perceivable latency. Moreover, once the GIS datahas been fetched, the disclosed technology performs the initialcalculations and any new calculations without the help of a server,which has the advantage of providing offline network analysisfunctionality.

The disclosed technology provides various other advantages. For example,the disclosed technology is platform and device agnostic. The technologycodebase can be adapted for various operating systems including WindowsOS, Mac OS and Linux OS, as well as mobile operating systems such asWindows Mobile, iOS, Android, and/or the like. The disclosed technologythus enables a user to be able to perform network analysis using aportable client device such as a tablet from any location (e.g., fieldsite).

1. Example Environment

FIG. 1 is a block diagram illustrating an example environment in whichthe disclosed technology can operate. As illustrated, the environment100 comprises one or more client devices 105A-N (hereinafter clientdevice 105), a communication network 110 and one or more GIS databases130A-N (hereinafter GIS database 130). The client device 105 can be anyhardware device that is able to establish a connection with anotherdevice or server, directly or via a communication network 110. Examplesof a client device 105 include, but are not limited to: a desktopcomputer, a thin-client device, a mobile computing device such as anotebook, a laptop computer 105A, a handheld computer, a mobile phone, asmart phone 105N, a tablet 105B, a phablet, and/or the like. The clientdevice 105 typically includes one or more input/output devices tofacilitate user interaction (e.g., to display a map, to enable a user tomake a selection of an area on the map). The disclosed system can beembodied in a smart network design (SND) application 120 (hereinafter“design application 120”) which is installed in the client device 105.The design application 120 can be downloaded from a server (e.g., hostserver 125, an application store or a repository) and installed on theclient device 105. In some embodiments, the design application 120 canbe a web-based application that can be accessed via a web-browser. Insome embodiments, the web-based application can operate by utilizingdata stored in the browser's local storage (i.e., network model dataremains in the client device but the data may be periodically backed upin the host server or a cloud). Various components or modules of thedisclosed system are described in detail in reference to FIG. 4 .

The GIS database 130 is a database or file structure that stores objectsdefined in a geometric space. One example of a GIS database is ageodatabase. Typically, each utility maintains its own GIS database. Forexample, a gas company can have its own GIS database that stores GISdata for its gas distribution network. Similarly, an electric companycan have its own GIS database that stores GIS data for its electricdistribution network. The GIS database 130 typically supports queryexecution on stored data as well as manipulation of the stored data.Examples of data stored in the GIS database include, but are not limitedto: geometry or shape data and attributes of objects, typically groupedinto different feature classes. The GIS database 130 may be implementedin Microsoft SQL Server, PostgreSQL relational database managementsystems, Microsoft Access, Oracle, IBM DB2, IBM Informix, and/or thelike.

The communication network 110, over which the client device 105 and theone or more geodatabases 130 communicate may be a telephonic network, anopen network, such as the Internet, or a private network, such as anintranet and/or the extranet. The communication network 110 can be anycollection of distinct networks operating wholly or partially inconjunction to provide connectivity to the client devices 105 and theGIS databases 130 and may appear as one or more communication networksto the serviced systems and devices. In some embodiments, communicationscan be achieved by a secure communications protocol, such as securesockets layer (SSL), or transport layer security (TLS).

In addition, communications can be achieved via one or more wirelessnetworks, such as, but is not limited to, one or more of a Local AreaNetwork (LAN), Wireless Local Area Network (WLAN), a Personal areanetwork (PAN), a Campus area network (CAN), a Metropolitan area network(MAN), a Wide area network (WAN), a Wireless wide area network (WWAN),Global System for Mobile Communications (GSM), Personal CommunicationsService (PCS), Digital Advanced Mobile Phone Service (D-Amps),Bluetooth, Wi-Fi, Fixed Wireless Data, 2G, 2.5G, 3G, 4G, 4G-LTEnetworks, enhanced data rates for GSM evolution (EDGE), General packetradio service (GPRS), enhanced GPRS, messaging protocols such as,TCP/IP, SMS, MMS, extensible messaging and presence protocol (XMPP),real time messaging protocol (RTMP), instant messaging and presenceprotocol (IMPP), instant messaging, USSD, IRC, or any other wirelessdata networks or messaging protocols.

The client devices 105 can be coupled to the communication network 110(e.g., Internet) via a dial up connection, a digital subscriber loop(DSL, ADSL), cable modem, and/or other types of connection. Thus, theclient devices 105 can communicate with remote servers (e.g., SND/hostserver 125, GIS database 130, mail server, instant messaging server),some of which may provide access to user interfaces of the World WideWeb via a web browser, for example.

FIG. 2 is a graphical diagram illustrating an example of GeographicInformation System (“GIS”) feature data for an electric distributioncircuit that is transformed into a network model for the electricdistribution circuit by the disclosed technology.

The GIS feature data 200 stored in a GIS database (e.g., GIS database130) includes various feature classes (i.e., database tables) such asthe CircuitSource, Transformer, ServicePoint, PrimaryConductor,SecondaryConductor and Switch feature classes. These feature classes areexemplary and some GIS databases may include additional or different setof feature classes depending on the GIS data model. By way of example,in addition to the PrimaryConductor and SecondaryConductor featureclasses, the GIS data model for conductors may also include otherfeature classes such as UndergroundPrimaryConductor,UndergroundSecondaryConductor and BusbarConductor feature classes (notshown). Each feature class includes a collection of individual featuresor objects, each having an object identifier (ID) and the geometry forthe features stored as a shape comprising a sect of vector coordinates(e.g., point, line, polygon), and/or attributes. In this example, theshape or geometry information is conveyed through “geographiccoordinates” in a Cartesian arrangement, but other coordinate systemsmay be used in some other embodiments. For example, the Transformerfeature class includes two objects, each having an object ID (50 and51), a shape (points or vertices given by coordinates (15, 8) and (11,4)) and an attribute—a phase designation (“ABC” and “B”).

An electric distribution circuit typically comprises of a basic trunk orskeleton of 3-phase conductors and equipment, as well as some branchesthat carry only one or two electrical phases (the neutral conductor mayor may not be present in any of the parts of the circuit without regardto the number of phases present). In the GIS model of electricdistribution circuit components, a single linear object is used torepresent up to 4 separate physical conductor segments that follow aparallel, namely one for each of the 3 electrical phases “A”, “B” and“C,” and a possible neutral conductor. The actual number andphase-identity of the set of conductors represented by a conductorobject in GIS is indicated by a Phase Designation attribute whose valueis any combination of the phase letters “A”, “B” and “C”. Furthermore,each switch, fuse, recloser or other sectionalizing device in the GISrepresentation of a circuit carries a switch state attribute thatindicates whether it is normally open or closed, for each of the 3phases independently (e.g. a switch may be closed on phase A but open onphases B and C). Thus, if a switch is open on phase A, then power cannotreach any objects downstream of that switch on phase A, even if powermight still flow to that equipment on phases B and C (which it will doif the switch is closed on those phases). The names “A”, “B” and “C” forthe phases are not universal. Some countries use a different namingconvention, (e.g. “Red”, “Green” and “Brown,” or “R”, “G” and “B,” orothers) although virtually all AC electric power distribution systems inthe world are 3-phase systems and the physical function and technicaldescription of the three phases is everywhere the same. The SNDapplication 120 allows the naming convention to be configured to agreewith the local practice.

By way of another example, the PrimaryConductor feature class includesfour objects, each having an object ID (100, 101, 102, 103) and a linearshape, as well as additional attributes including an operating voltageand a phase designation for the object.

FIG. 3 is a graphical diagram illustrating a graphical representation ofthe GIS feature data from FIG. 2 .

The disclosed technology, in some embodiments, uses the geometricinformation in the GIS feature data to construct an undirected graph (orundirected network) which is a set of adjacency relationships betweenthe features. The adjacency relationships between the features can beclearly illustrated by plotting or tracing on a graph the geometricinformation in the GIS feature data. For example, the PrimaryConductor101 coincides with the location of Switch 10 as well as Node 20 in thegraph 300, resulting in the creation of two adjacency relationships—onebetween the PrimaryConductor 101 and the Switch 10 and another betweenthe PrimaryConductor 101 and the Node 20. The adjacency relationship canbe represented by an ordered pair of object IDs: (101, 10) and (101,20). Since it is an undirected graph, the adjacency relationship iscommutative, so the complementary ordered pairs (10, 101) and (20, 101)will also be created.

FIG. 4 is a block diagram illustrating example components of thedisclosed system or application 120 in some embodiments.

The disclosed system 120 resides in a client device 105 which can be anyof the client devices 105 described in reference to FIG. 1 . In someembodiments, the disclosed system 120 includes a network modeling engine415 having an undirected graphing module 420, a directed graphing module425 and a mapping module 430, a network analysis module 440 having atracing module 445, and a rendering engine 450. The client device 105includes a cache memory 455 in which the network model data generatedfrom network model engine 415 is stored for fast access by the networkanalysis module 440. In some embodiments, the disclosed system 120 mayinclude more or less components. Each of these components of thedisclosed system 120 will now be described in detail with reference toFIGS. 5 and 6 .

The network modeling engine 415 generates the network model thatsupports various operations such as visualization, network analysis(e.g., tracing, load flow analysis, operating voltage calculations)and/or editing on a distribution network. The network modeling engine415, via the undirected graphing module 420, the directed graphingmodule 425 and/or the mapping module 430, can transform GIS feature data(e.g., the GIS feature data described in reference to FIG. 2 ) obtainedfrom a GIS database (e.g., GIS database 130 described in reference toFIG. 1 ) into a specialized data structure that can be utilized by thetracing module 445 to determine for any given vertex in the graph (e.g.,corresponding to a selection made by a user on a map), the set of allvertices that are upstream and/or downstream of that vertex, with regardto the direction of flow of the network commodity (e.g., electric power,water, gas, electromagnetic signal and/or the like). The renderingengine 450 can then render all the features that are upstream of thevertex and all the features that are downstream of the vertex indistinct styles (e.g., by using different coloring schemes orhighlighting) to clearly illustrate the flow path of respectiveelectrical phases through the features starting from the source vertex.

In some embodiments, the undirected graphing module 420 utilizes thegeometric information in the GIS feature data to construct an undirectedgraph. As used herein, an undirected graph is a set of adjacencyrelationships between objects. An adjacency relationship between objectsis represented by a commutative pair of object IDs. Referring to FIG. 2, one of the endpoints of PrimaryConductor 101 coincides with thelocation of Switch 10. The undirected graphing module 420 recognizesthis connection or adjacency between PrimaryConductor 101 and Switch 10and in response creates an adjacency relationship between those objects,represented by an ordered pair of object IDs: (101, 10). Since it is anundirected graph, the adjacency relationship is commutative, so theundirected graphing module 420 also creates a complementary ordered pair(10, 101). Once the adjacency relationships between objects have beendetermined, the undirected graphical module 420 generates an adjacencylist or data structure representing the undirected graph. An example ofthe adjacency list representing the undirected graph constructed fromthe GIS feature data 200 from FIG. 2 is depicted in FIG. 5 . Asillustrated, the adjacency list 500 includes a collection of object IDsand adjacent object IDs. In other words, the adjacency list 500associates each object in the undirected graph with a set of neighboringobjects. For example, object ID 1 is associated with its neighbor objectID 100, and object ID 100 is associated with its neighbors which includeobject ID 1, as well as object ID 10. In alternative embodiments, a GISdatabase (e.g., GIS database 130) can be the source of the adjacencylist or data structure representing the undirected graph.

The directed graphing module 425 operates on the undirected graph,performing a series of traversals of the undirected graph, beginning ateach object that is a source vertex to construct a directed graph. Asused herein, a directed graph is a set of objects having adjacencyrelationships, where all the adjacency relationships are directed fromone object to another. When traversing the undirected graph, thedirected graphing module 425 pays attention to selected attributes ofcertain objects that are of interest to the application domain. In thedomain of electric power distribution, for example, the directedgraphing module 425 examines the PhaseDesignation attribute of conductorvertices in the graph and to the ClosedPhases attribute of verticesrepresenting sectionalizing devices. The directed graphing module 425then uses these attributes to determine, at each step in the traversal,which of the electrical phases that reach a vertex via a given adjacencycan be permitted to continue on to the other adjacencies of the vertex.For example, a switch that is open on all three phases blocks allphases, and thus a traversal halts upon reaching any open switch. By wayof another example, if a traversal brings phases ABC up to a switch thatis closed on phases BC but open on phase A, then only phases B and Cwill be allowed to pass on to the conductor on the far side of theswitch. In other words, each time a traversal reaches a vertex V₂ comingfrom an adjacent vertex V₁, the directed graphing module 425 creates, ina new graph, a directed edge (V₁, V₂) that carries two additionalattributes: SourceID and Phases. The SourceID attribute identifies thesource vertex from which the traversal began. The SourceID attribute, insome embodiments, effectively serves as an identifier for the entiredistribution circuit that is energized by that source. The Phasesattribute indicates which electric phases reach all the way from thatsource to vertex V₂, arriving via vertex V₁.

Referring to the example distribution circuit corresponding to the GISfeature data 200 of FIG. 2 , the directed graphing module 425 performs atraversal of the undirected graph to output an adjacency list for thedirected graph as illustrated in FIG. 6 . The adjacency list 600 for thedirected graph includes a set of directed adjacencies with correspondingSource and Phases attributes. The data structure 600 readily supports atracing operation, i.e., enumerates, for any given vertex in the graph,the set of all vertices that are downstream of that vertex, and all thevertices that are upstream of that vertex. For example, from the datastructure it is apparent that vertices 50 and 51 are downstream ofvertex 10.

The mapping module 430, in some embodiments, manipulates the adjacencylist representing the directed graph to optimize the look up performancefor network analysis (e.g., tracing or any other operations), so thatthe look up performance does not become progressively worse as the sizeand complexity of a distribution circuit increases. In some embodiments,the mapping module 430 achieves the optimization by renumbering theobjects in the directed graph so that the adjacency list for thedirected graph can be stored in the form of an array where the arrayindex serves as a proxy for the object's original ID as known to theGIS. Indexing the array in this manner enables random access to theadjacencies for any given vertex in the network, so that the lookupcomplexity for adjacencies is O(1). The mapping module 430 creates amapping of GIS IDs to array indexes in the network model, and viceversa, so that the start object for a tracing action can be convertedinto the corresponding array index, and so that the trace results, whichare developed as a set of array index values to represent the tracedobjects, can be converted into GIS IDs for those objects. In someembodiments, the adjacency list for the directed graph can be stored inthe form of hashtables. In other embodiments, the mapping module 430 maybe optional.

In some embodiments, the specialized data structure representing thenetwork generated by the network model engine 415 is stored in a cachememory 455. When a user selects an object on a map to see the tracingresults, the tracing module 445 accesses the network model data in thecache memory 455 to look up objects that are upstream and/or downstreamof the object. Because of the caching of the network model data, thereis no need to start from the GIS feature data or data representing theundirected graph and traverse the undirected graph again. Instead themodule 425 will have already performed the traversal of the undirectedgraph once to create the directed graph and in some embodiments, themapping module 430 will have already converted the data structure forthe directed graph into an array or hashtable format and stored thearray or hashtable in the cache memory 455. This means that in additionto the upstream and downstream orientations, electrical phases andinformation about the power source are precalculated and can be quicklyrecalled from the cache memory for tracing operations or to respond toattribute queries on any object in the circuit. For example, a user canselect any object on a circuit, the network analysis module 440 canaccess the cache memory 455 to recall information such as the powersource for that object and the phases that reach the object from thepower source and instantly display the results on the map, withoutperforming additional calculations or network operations (e.g.,communicating with a server over a network).

In some embodiments, the structure of the output from the mapping module430, i.e., a directed graph streamlined for electric circuit tracing inboth upstream and downstream directions, can be fully represented in anobject oriented programming language using two classes: one class torepresent the directed edges with their attributes, and the networkclass itself that includes the network objects, the adjacencies betweenthe objects (i.e., the directed edges), and the mapping of networkobject IDs to array index values. FIG. 7 depicts an example coderepresentation of an electric network model expressing the directed edgeclass and the network class using C# programming language.

In some embodiments, the adjacency list representing the undirectedgraph (generated by the undirected graphing module 220 or received fromthe GIS database 130) can support at least some of the operationsrelating to visualization, network analysis (e.g., tracing, load flowanalysis, operating voltage calculations), validation and/or editing ona distribution network. As such, the adjacency list can be storedlocally on the client device (e.g., in a cache memory 455) in itsoriginal form, or in a form (e.g., array, hashtable) optimized forlookup speed (e.g., via the mapping module 430).

FIG. 8 is a logic flow diagram illustrating an example method ofcreating a network model within a client environment using GIS featuredata from a GIS database. The example method can be implemented by thedisclosed system/application 120 described in reference to FIG. 4 andcan be used for generating network models for other utilities besideselectric utility, such as water, gas, telecommunication, or the like.

In some embodiments, a user selects an area on interest on a mapdisplayed on a client device (e.g., client device 105) for which theuser wants to create a network model. In some instances, the user maydraw a boundary on a map to define the area of interest (e.g., adistribution network or a portion thereof). Once the disclosed systemdetects the request from the user to create a network model for an area,the disclosed system queries a GIS database that is remote from theclient device for network data or GIS data corresponding to the area ofinterest. At block 805, the disclosed system receives GIS data from theGIS database in response to its query. In some embodiments, the GIS datacan include information about GIS features and associated spatial (orgeometry) information. At block 815, the disclosed system determinesadjacency relationships between the features using the spatialinformation to construct an undirected graph. The undirected graph canbe represented by a first adjacency list that comprises pairs of objectIDs, with each pair of object IDs representing an adjacencyrelationship. In some embodiments, the GIS data can include adjacencyrelationships between features. In such a case, the undirected graphneed not be generated. At block 825, the disclosed system performs atraversal of the undirected graph to construct a directed graph thatcaptures the upstream or downstream orientation and associatedattributes of each adjacency between the features. The directed graphcan be represented by a second adjacency list that comprises of a set ofdirected adjacencies with corresponding attributes. At block 835, thedisclosed system renumbers the objects in the directed graph and storesthe second adjacency list in the form of an array to facilitate editing,analysis and/or visualization of the distribution network. The disclosedsystem can also store mapping information that maps the original objectIDs to the array indexes and vice versa. The network model created bythe disclosed system thus includes the array and the mappinginformation. In other embodiments, the second adjacency list can bestored in the form of a hashtable optimized for lookup speed. Thenetwork model data can be stored in cache memory on the client device insome embodiments to improve the look up performance for adjacencies andassociated attributes that are utilized by network analysis modules 440such as the tracing module 445 described in reference to FIG. 4 . In yetother embodiments, the second adjacency list can be stored in itsoriginal form, without optimization.

FIG. 9 is a graphical diagram illustrating a portion of an electricdistribution circuit with tracing results showing objects that areupstream and downstream from a point of selection. As depicted, with thetracing function turned on, when a user hovers over (or clicks or tapsor otherwise selects) a point (e.g., point 905) on the map 900, thetracing module 445 of the disclosed system uses the network model datastored in the cache memory to identify the upstream objects and thedownstream objects relative to the location of the point 905. Therendering engine 450 then displays the path from a substation (notshown) that is the source of power in a distribution feeder circuit,highlighting the upstream objects in one color or style (e.g., lightblue color) and all the downstream objects in another color or style(e.g., red color). When the user selects another point on thedistribution feeder circuit, the tracing module 445 and the renderingengine 450 respond instantaneously to identify and display all theobjects upstream of that point, and all the objects downstream of thatpoint. The response is instantaneous, with no perceivable latency,because the network model data is mostly or entirely pre-calculated, andlocalized, which eliminates the need for sending out network queries tothe GIS each time a new point on the map is selected for tracing.

FIG. 10 is a block diagram of an exemplary apparatus that can performvarious operations, and store various information generated and/or usedby such operations in some embodiments of the disclosed technology.

The apparatus can represent any computer described herein. The computer1000 is intended to illustrate a hardware device on which any of theentities, components or methods depicted in the examples of FIGS. 1-9(and any other components described in this specification) can beimplemented, such as a server, client device 105, storage devices,databases (e.g., GIS database 130), network modeling engine 415, networkanalysis module 440, tracing module 445, rendering engine 450 and/or thelike. The computer 1000 includes one or more processors 1010 and memory1020 coupled to an interconnect 1030. The interconnect 1030 is shown inFIG. 10 as an abstraction that represents any one or more separatephysical buses, point to point connections, or both connected byappropriate bridges, adapters, or controllers. The interconnect 1030,therefore, may include, for example, a system bus, a PeripheralComponent Interconnect (PCI) bus or PCI-Express bus, a HyperTransport orindustry standard architecture (ISA) bus, a small computer systeminterface (SCSI) bus, a universal serial bus (USB), IIC (I2C) bus, or anInstitute of Electrical and Electronics Engineers (IEEE) standard 1394bus, also called “Firewire”.

The processor(s) 1010 is/are the central processing unit (CPU) of thecomputer 1000 and, thus, control the overall operation of the computer1000. In some embodiments, the processor(s) 1010 accomplish this byexecuting software or firmware stored in memory 1020. The processor(s)1010 may be, or may include, one or more programmable general-purpose orspecial-purpose microprocessors, digital signal processors (DSPs),programmable controllers, application specific integrated circuits(ASICs), programmable logic devices (PLDs), trusted platform modules(TPMs), or the like, or a combination of such devices.

The memory 1020 is or includes the main memory of the computer 1000. Thememory 1020 represents any form of random access memory (RAM), read-onlymemory (ROM), flash memory, or the like, or a combination of suchdevices. In use, the memory 1020 may store a code. In some embodiments,the code includes a general programming module configured to recognizethe general-purpose program received via the computer bus interface, andprepare the general-purpose program for execution at the processor. Inanother embodiment, the general programming module may be implementedusing hardware circuitry such as ASICs, PLDs, or field-programmable gatearrays (FPGAs).

Also connected to the processor(s) 1010 through the interconnect 1030are a network adapter 1025, a storage device(s) 1005 and I/O device(s)1015. The network adapter 1025 provides the computer 1000 with theability to communicate with remote devices, over a network and may be,for example, an Ethernet adapter or Fibre Channel adapter. The networkadapter 1025 may also provide the computer 1000 with the ability tocommunicate with other computers within a cluster. In some embodiments,the computer 1000 may use more than one network adapter to deal with thecommunications within and outside of the cluster separately.

The I/O device(s) 1015 can include, for example, a keyboard, a mouse orother pointing device, disk drives, printers, a scanner, and other inputand/or output devices, including a display device. The display devicecan include, for example, a cathode ray tube (CRT), liquid crystaldisplay (LCD), or some other applicable known or convenient displaydevice.

The code stored in memory 1020 can be implemented as software and/orfirmware to program the processor(s) 1010 to carry out actions describedabove. In certain embodiments, such software or firmware may beinitially provided to the computer 1000 by downloading it from a remotesystem through the computer 1000 (e.g., via network adapter 1025).

The technology introduced herein can be implemented by, for example,programmable circuitry (e.g., one or more microprocessors) programmedwith software and/or firmware, or entirely in special-purpose hardwired(non-programmable) circuitry, or in a combination of such forms.Special-purpose hardwired circuitry may be in the form of, for example,one or more ASICs, PLDs, FPGAs, etc.

Software or firmware for use in implementing the technology introducedhere may be stored on a machine-readable storage medium and may beexecuted by one or more general-purpose or special-purpose programmablemicroprocessors. A “machine-readable storage medium”, as the term isused herein, includes any mechanism that can store information in a formaccessible by a machine.

A machine can also be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a laptop computer, a set-top box (STB), apersonal digital assistant (PDA), a cellular telephone, an iPhone, aBlackberry, a processor, a telephone, a web appliance, a network router,switch or bridge, or any machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine.

A machine-accessible storage medium or a storage device(s) 1005includes, for example, recordable/non-recordable media (e.g., ROM; RAM;magnetic disk storage media; optical storage media; flash memorydevices; etc.), etc., or any combination thereof. The storage mediumtypically may be non-transitory or include a non-transitory device. Inthis context, a non-transitory storage medium may include a device thatis tangible, meaning that the device has a concrete physical form,although the device may change its physical state. Thus, for example,non-transitory refers to a device remaining tangible despite this changein state.

The term “logic”, as used herein, can include, for example, programmablecircuitry programmed with specific software and/or firmware,special-purpose hardwired circuitry, or a combination thereof.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” As used herein, the terms “connected,”“coupled,” or any variant thereof, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or acombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, shall referto this application as a whole and not to any particular portions ofthis application. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,and any combination of the items in the list.

The above detailed description of embodiments of the disclosure is notintended to be exhaustive or to limit the teachings to the precise formdisclosed above. While specific embodiments of, and examples for, thedisclosure are described above for illustrative purposes, variousequivalent modifications are possible within the scope of thedisclosure, as those skilled in the relevant art will recognize. Forexample, while processes or blocks are presented in a given order,alternative embodiments may perform routines having steps, or employsystems having blocks in a different order, and some processes or blocksmay be deleted, moved, added, subdivided, combined, and/or modified toprovide alternative or subcombinations. Each of these processes orblocks may be implemented in a variety of different ways. Also, whileprocesses or blocks are at times shown as being performed in series,these processes or blocks may instead be performed in parallel, or maybe performed at different times. Further any specific numbers notedherein are only examples: alternative implementations may employdiffering values or ranges.

The teachings of the disclosure provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various embodiments described above can be combined toprovide further embodiments.

The disclosed technology can also be adapted to other aspects of autility distribution system such as the transmission/sub-transmissionnetworks or the like.

Any patents and applications and other references noted above, includingany that may be listed in accompanying filing papers, are incorporatedherein by reference. Aspects of the disclosure can be modified, ifnecessary, to employ the systems, functions, and concepts of the variousreferences described above to provide yet further embodiments of thedisclosure.

These and other changes can be made to the disclosure in light of theabove Detailed Description. While the above description describescertain embodiments of the disclosure, and describes the best modecontemplated, no matter how detailed the above appears in text, theteachings can be practiced in many ways. Details of the system may varyconsiderably in its implementation details, while still beingencompassed by the subject matter disclosed herein. As noted above,particular terminology used when describing certain features or aspectsof the disclosure should not be taken to imply that the terminology isbeing redefined herein to be restricted to any specific characteristics,features, or aspects of the disclosure with which that terminology isassociated. In general, the terms used in the following claims shouldnot be construed to limit the disclosure to the specific embodimentsdisclosed in the specification, unless the above Detailed Descriptionsection explicitly defines such terms. Accordingly, the actual scope ofthe disclosure encompasses not only the disclosed embodiments, but alsoall equivalent ways of practicing or implementing the disclosure underthe claims.

From the foregoing, it will be appreciated that specific embodimentshave been described herein for purposes of illustration, but thatvarious modifications may be made without deviating from the spirit andscope of the disclosed technology. Accordingly, the disclosed technologyis not limited except as by the appended claims.

What is claimed is:
 1. A method for constructing a model for adistribution network comprising: receiving, on a hardware device,Geographic Information System (GIS) data corresponding to a distributionnetwork or a portion thereof from a GIS database, the GIS data includinga set of adjacency relationships between features in an area of interestor information for deriving the set of adjacency relationships;performing a traversal of the distribution network or the portionthereof using the set of adjacency relationships and attributes of thefeatures in each step of the traversal to generate a data structurerepresenting a model for the distribution network or the portionthereof; and storing the data structure in a local storage on thehardware device.
 2. The method of claim 1, wherein the data structure isstored in a form optimized for lookup speed in a cache memory on thehardware device.
 3. The method of claim 1, wherein the data structurecomprises a set of directed adjacency relationships and correspondingattributes.
 4. The method of claim 3, wherein the distribution networkis an electric distribution network and the attributes include a sourceidentifier attribute identifying a source vertex from which thetraversal began, and a phases attribute indicating which of theelectrical phases from the source vertex that pass through a firstvertex reach an adjacent vertex.
 5. The method of claim 1, furthercomprising: accessing the data structure representing the model for thedistribution network or the portion thereof from the local storage toedit, perform a network analysis operation or visualize the distributionnetwork or the portion thereof.
 6. The method of claim 5, wherein theediting, performing a network analysis operation or visualizing thedistribution network or the portion thereof is performed against themodel stored on the hardware device while the hardware device isdisconnected from the GIS database.
 7. The method of claim 5, whereinthe network analysis operation includes a tracing operation or anattribute query operation.
 8. The method of claim 5, wherein the networkanalysis operation includes an electric tracing, a load flow analysis,or operating voltage calculations.
 9. The method of claim 1, furthercomprising: renumbering objects in the data structure to store the datastructure as an array on the hardware device, wherein an index of thearray is a proxy for the corresponding object's original identifier inthe GIS; and mapping GIS identifiers of the objects in the datastructure to index values of the array.
 10. The method of claim 1,wherein the distribution network includes any one of: an electricdistribution network, a gas distribution network, a water distributionnetwork or a telecom distribution network.
 11. The method of claim 1,further comprising: detecting a user request to perform a tracinganalysis on a circuit in the distribution network, wherein the userrequest includes a selection of a point on the circuit; in response tothe user request, accessing the model for the distribution network todetermine objects that are upstream and downstream of the point selectedby the user; rendering a trace of an upstream path that starts from asource vertex and flows through the objects that are upstream to thepoint selected by the user; and rendering a trace of a downstream paththat starts from the point selected by the user and flows through theobjects that are downstream.
 12. A non-transitory machine-readablemedium comprising instructions which when executed by a machine causethe machine to execute a method comprising: receiving GeographicInformation System (GIS) data for a utility distribution network from aGIS database, wherein the GIS data includes objects and spatialinformation associated with the objects; determining adjacencyrelationships between the objects using the spatial information togenerate a first adjacency list; determining upstream or downstreamdirection and at least one associated attribute of each adjacencybetween the objects in the first adjacency list to generate a secondadjacency list; and storing the second adjacency list on the machine tofacilitate at least one of editing, analysis or visualization of acircuit in the utility distribution network.
 13. The non-transitorymachine-readable medium of claim 12, wherein determining the upstream ordownstream direction of each adjacency between the objects furthercomprises: starting from each source vertex, performing a traversal ofthe utility distribution network based on the adjacency relationshipsand attributes of the objects.
 14. The non-transitory machine-readablemedium of claim 12, wherein the adjacency relationships are representedby pairs of object identifiers and complements thereof.
 15. Thenon-transitory machine-readable medium of claim 13, wherein the secondadjacency list comprises the pairs of object identifiers from the firstadjacency list arranged in an order based on the traversal of thedistribution network.
 16. The non-transitory machine-readable medium ofclaim 12, wherein the utility distribution network is one of: anelectric distribution network, a gas distribution network, a waterdistribution network or a telecommunication distribution network. 17.The non-transitory machine-readable medium of claim 12, furthercomprising: detecting a user request to perform a tracing analysis on acircuit in the utility distribution network, wherein the user requestincludes a selection of a point on the circuit; in response to the userrequest, accessing the second adjacency list stored in a form optimizedfor lookup speed in a cache memory on the machine to determine objectsthat are upstream and downstream of the point selected by the user;rendering a trace of an upstream path that starts from a source vertexand flows through the objects that are upstream to the point selected bythe user; and rendering a trace of a downstream path that starts fromthe point selected by the user and flows through the objects that aredownstream.
 18. A computer system for constructing a model for adistribution network comprising: a memory including a cache memory; andone or more processors configured to execute instructions stored in thememory to: receive Geographic Information System (GIS) data for adistribution network from a GIS database, the GIS data including spatialinformation relating to objects in the distribution network; constructan undirected graph utilizing the spatial information in the GIS data,wherein the undirected graph is represented by a data structurecorresponding to a set of adjacency relationships between the objects;construct a directed graph by traversing the undirected graph startingfrom each source vertex and tracking attributes of the objects in eachstep of the traversal, wherein the directed graph is represented by adata structure corresponding to a set of directed adjacencyrelationships between the objects; and cache the data structurecorresponding to the directed graph in the cache memory on the computersystem.
 19. The system of claim 18, wherein the distribution networkincludes any one of: an electric distribution network, a gasdistribution network, a water distribution network or a telecomdistribution network.
 20. The system of claim 18, further configured to:detect a user request to perform a tracing analysis on a circuit in thedistribution network, wherein the user request includes a selection of apoint on a circuit; in response to the user request, access the datastructure stored in the cache memory to determine objects that areupstream and downstream of the point selected by the user, wherein thedata structure is stored in the form of an array or hashtable forimproved lookup speed; and render a trace of an upstream path thatstarts from a source vertex and flows through the objects that areupstream to the point selected by the user; and render a trace of adownstream path that starts from the point selected by the user andflows through the objects that are downstream.